[SQL] SQL存储过程

Posted by Aerber Zhou on 2015-07-21

存储过程详解

存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程

使用带有参数的存储过程,也是很好的防止了SQL注入攻击

创建存储过程

1
2
3
4
5
6
create procedure sp_name
@[参数名] [类型],@[参数名] [类型]
as
begin
.........
end

以上格式还可以简写成:

1
2
3
4
5
6
7
create proc sp_name
@[参数名] [类型],@[参数名] [类型]
as
begin
.........
end
/*注:“sp_name”为需要创建的存储过程的名字,该名字不可以以阿拉伯数字开头*/

我个人觉得,创建存储过程就像是创建一个类。

类中的变量就是 “@[参数名] [类型],@[参数名] [类型]”

而这个类中的方法也只有一个,就是

“as

begin



end“

调用存储过程

1
1.基本语法:exec sp_name [参数名]

删除存储过程

1
2
3
4
1.基本语法:
drop procedure sp_name
2.注意事项
(1)不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程

其他常用命令

1
2
3
4
5
6
1.show procedure status
显示数据库中所有存储的存储过程基本信息,包括所属数据库,存储过程名称,创建时间等
2.show create procedure sp_name
显示某一个mysql存储过程的详细信息
3、exec sp_helptext sp_name
显示你这个sp_name这个对象创建文本